/*
 * inet_aton.c
 *
 *  Created on: 2009-5-5
 *      Author: tian
 */

#include"ipaddr.h"
#include<stdlib.h>
#include<string.h>

int inet_aton(const char *strptr,struct in_addr *addrptr){
	//char c=0;
	int i,len,j,k,num;
	char temp[16]={0};
	if((len=strlen(strptr))>16)
		return -1;
	j=0;
	k=0;
	for(i=0;i<len;i++){
		if(strptr[i]=='.'){
			num=atoi(temp);
			if(num<0 || num>255)
				return -1;
			else
				addrptr->part[k++]=num;
			memset(temp,0,16);
			j=0;
			continue;
		}
		temp[j++]=strptr[i];
	}
	if(k!=3)
		return -1;
	addrptr->part[k]=atoi(temp);
	if(addrptr->part[k]<0 || addrptr->part[k]>255)
		return -1;

	return 0;
}
